<?php 

	function httpE($e=404, $m=''){
		die($e);	
	}
	
	function OB(){
		return getObj('Page');	
	}
	
	function usr(){
		return sn()->usr();
	}
	
	function Documents(){
		return getObj('Documents');	
	}

	function smuoi_get_apache_script(){
		return Fmgr()->open(substr($_SERVER["SCRIPT_FILENAME"], strlen(DOM_DOCROOT)));
	}
	
	function document(){
		if(!is_null($d = globvar('SMUOI_DOCUMENT'))) return $d;
		return $GLOBALS['SMUOI_DOCUMENT'] = smuoi_get_apache_script();
	}
	
	function caller(){
		return My()->caller;	
	}
	
	function this(){
		return My()->this;	
	}
	
	function smuoi_parse($str, $_this=false){
		if($_this){
			$was = My()->this;
			My()->this = $_this;
		}
		$str = Smurly()->run($str);
		if($_this) My()->this = $was;	
		return $str;
	}
	
	function smuoi_xtn_is_parsed($xtn=XTN){
		return in_array($xtn, smoui_getenv_array('PARSE'));
	}
	
	function smuoi_xtn_is_script($xtn=XTN){
		return in_array($xtn, smoui_getenv_array('SCRIPT'));
	}
	
	function smuoi_xtn_is_run($xtn=XTN){
		return (getenv('SMUOI') == 'run') || in_array($xtn, smoui_getenv_array('RUN'))
		|| smuoi_xtn_is_parsed($xtn) || smuoi_xtn_is_script($xtn);
	}
	
	function smuoi_xtn_permit_handover($xtn=XTN){
		return in_array($xtn, smoui_getenv_array('PERMIT_HANDOVER'));
	}
	
	function smuoi_xtn_is_php($xtn=XTN){
		return (smuoi_xtn_is_script($xtn) || smuoi_xtn_permit_handover($xtn));
	}

	function smoui_getenv_array($N){
		return ($a = smuoi_getenv("SMUOI_$N")) ? (array) $a : array();
	}

	function smuoi_getenv_script_xtns(){
		return (array) smuoi_getenv('SMUOI_SCRIPT');
	}
	
	function smuoi_getenv_parse_xtns(){
		return (array) smuoi_getenv('SMUOI_PARSE');
	}
	
	function smuoi_getenv_default_template($xtn=XTN){
		if(!$e = smuoi_getenv('SMUOI_DEFAULT_TEMPLATE')) return false;
		if(is_array($e)){
			foreach($e as $v){
				$a = explode('=', $v);
				if($a[0] !== $xtn) continue;
				if(!$e = @$a[1]) return false;
				break;
			}
		}
		return is_smurly($e) ? Smurly($e) : Fmgr()->open($e);
	}
	
	function smuoi_ob_get(){
		$c = ob_get_clean();
		if(!getenv('SMUOI_NO_OB')) ob_start();
		return $c;
	}


